﻿using NP.BPMReportPlatform.AuthorizationUserManager.Dtos;
using NP.BPMReportPlatform.Entities.BPM_Process;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace NP.BPMReportPlatform.AuthorizationUserManager
{
    public interface IRoleAppService : IApplicationService
    {
        Task<PagedResultDto<Role>> GetRoleList(RoleInfoInput input);

        Task<List<Role>> ExportRoleList(RoleInfoInput input);

        Task<string> EditRoleAsync(Role input);

        Task<string> DeleteRoleAsync(Guid id);

        Task<string> AuthProcess(RoleBindProcessInput input);

        Task<ProcessTreeData> GetAllProcesses(string roleId);

        Task<List<Role>> GetRoles(string name, int top = 50);

        Task<List<Role>> GetUserRoles(string workNumber);

        Task<string> AuthUserRole(BindUserRoleInput input);

        Task<ProcessTreeData> GetAuthAnalysisProcessTree();

        Task<ProcessTreeData> GetAuthAnalysisProcessTreeForThirdFlow();
    }
}
